package com.imooc.socket;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UDPServer {    // 服务端

    public static void main(String[] args) throws IOException {

        // 监听的端口号
        DatagramSocket socket = new DatagramSocket(65001);


        // 服务端接受客户端发送的数据报
        byte[] buff = new byte[100];   // 存储从客户端接收到的内容
        DatagramPacket packet = new DatagramPacket(buff, buff.length);
        // 接收客户端发送过来的内容，并将内容封装进DatagramPacket对象中
        socket.receive(packet);
        byte[] data = packet.getData(); // 从DatagramPacket对象中获取到真正存储的数据
        // 将数据从二进制转换成字符串形式
        String content = new String(data, 0, packet.getLength());
        System.out.println("----------------------");
        System.out.println("客户端：" + content);
        System.out.println("已发送给客户器端长度");


        // 向服务端发送的数据报
        // 将要发送的数据报转换成二进制
        byte[] sendedContent = String.valueOf(content.length()).getBytes();
        DatagramPacket packetToClient = new DatagramPacket(sendedContent, sendedContent.length
                , packet.getAddress(), packet.getPort());// 从packet对象中获取到数据的来源地址与端口号
        socket.send(packetToClient); // 发送数据给客户端

    }
}
